#include <asm/io.h>
#include <asm/page.h>
+#include <asm/maddr.h>
#include <asm/pgtable.h>
#include <asm/hypervisor.h>
#include <xen/xenbus.h>
#include <xen/xen_proc.h>
#include <xen/evtchn.h>
#include <xen/features.h>
+#include <xen/hvm.h>
#include "xenbus_comms.h"
if (xsd_port_intf)
xsd_port_intf->read_proc = xsd_port_read;
#endif
+ xen_store_interface = mfn_to_virt(xen_store_mfn);
} else {
xenstored_ready = 1;
+#ifdef CONFIG_XEN
xen_store_evtchn = xen_start_info->store_evtchn;
xen_store_mfn = xen_start_info->store_mfn;
+ xen_store_interface = mfn_to_virt(xen_store_mfn);
+#else
+ xen_store_evtchn = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN);
+ xen_store_mfn = hvm_get_parameter(HVM_PARAM_STORE_PFN);
+ xen_store_interface = ioremap(xen_store_mfn << PAGE_SHIFT,
+ PAGE_SIZE);
+#endif
}
- xen_store_interface = mfn_to_virt(xen_store_mfn);
xenbus_dev_init();
XEN=$C/../../xen
XL=$C/../../linux-2.6-xen-sparse
+for d in $(find ${XL}/drivers/xen/ -maxdepth 1 -type d | sed -e 1d); do
+ if ! echo $d | egrep -q back; then
+ lndir $d $(basename $d) > /dev/null 2>&1
+ fi
+done
+
ln -sf ${XL}/drivers/xen/core/gnttab.c platform-pci
ln -sf ${XL}/drivers/xen/core/features.c platform-pci
+ln -sf ${XL}/drivers/xen/core/xen_proc.c xenbus
mkdir -p include
mkdir -p include/xen
--- /dev/null
+include $(M)/overrides.mk
+
+obj-m += xenbus.o
+xenbus-objs =
+xenbus-objs += xenbus_comms.o
+xenbus-objs += xenbus_xs.o
+xenbus-objs += xenbus_probe.o
+xenbus-objs += xenbus_dev.o
+xenbus-objs += xenbus_client.o
+xenbus-objs += xen_proc.o